load("@rules_cc//cc:defs.bzl", "cc_library")

package(default_visibility = ["//visibility:public"])

cc_library(
    name = "boost.geometry",
    hdrs = glob(
        [
            "include/**/*.hpp",
        ],
        exclude = [
            "include/boost/geometry/**/detail/**/*.hpp",
            "include/boost/geometry/strategies/agnostic/buffer_distance_asymmetric.hpp",
            "include/boost/geometry/strategies/agnostic/buffer_distance_symmetric.hpp",
            "include/boost/geometry/strategies/buffer.hpp",
            "include/boost/geometry/strategy/geographic/area_box.hpp",
            "include/boost/geometry/views/enumerate_view.hpp",
        ],
    ),
    features = [
        "parse_headers",
    ],
    includes = ["include"],
    textual_hdrs = glob([
        "include/boost/geometry/**/detail/**/*.hpp",
        "include/boost/geometry/strategies/agnostic/buffer_distance_asymmetric.hpp",
        "include/boost/geometry/strategies/agnostic/buffer_distance_symmetric.hpp",
        "include/boost/geometry/strategies/buffer.hpp",
        "include/boost/geometry/strategy/geographic/area_box.hpp",
        "include/boost/geometry/views/enumerate_view.hpp",
    ]),
    deps = [
        "@boost.algorithm",
        "@boost.any",
        "@boost.array",
        "@boost.assert",
        "@boost.concept_check",
        "@boost.config",
        "@boost.container",
        "@boost.core",
        "@boost.function_types",
        "@boost.fusion",
        "@boost.integer",
        "@boost.iterator",
        "@boost.lexical_cast",
        "@boost.math",
        "@boost.mpl",
        "@boost.multiprecision",
        "@boost.numeric_conversion",
        "@boost.polygon",
        "@boost.qvm",
        "@boost.range",
        "@boost.rational",
        "@boost.serialization",
        "@boost.static_assert",
        "@boost.thread",
        "@boost.throw_exception",
        "@boost.tokenizer",
        "@boost.tuple",
        "@boost.type_traits",
        "@boost.variant",
        "@boost.variant2",
    ],
)
